#include "mywindpoint.h"
#include <cstdlib>
#include <GL/glut.h>
#include "glutfunctions.h"

myWindPoint::myWindPoint(const Point& position) :
    WindPoint(position)
{
}

void myWindPoint::Draw()
{
    glPointSize(3.0);
    glBegin(GL_POINTS);
    glColor3f(0, 0, 1);
    glVertex3f(GetPosition().GetX(), GetPosition().GetY(), 0);
    glEnd();
}

#ifdef BEND2D_DEBUG
void myWindPoint::DrawNew()
{
    glPointSize(3.0);
    glLineWidth(2.0);

    double textColor = 0;

    // Speed //
    glBegin(GL_LINES);
    glColor3f(0, 1, 0);
    glVertex3f(GetPosition().GetX(), GetPosition().GetY(), 0);
    glVertex3f(GetSpeed().GetX() + GetPosition().GetX(), GetSpeed().GetY() + GetPosition().GetY(), 0);
    glEnd();

    glBegin(GL_POINTS);
    glVertex3f(GetSpeed().GetX() + GetPosition().GetX(), GetSpeed().GetY() + GetPosition().GetY(), 0);
    glEnd();

    glColor3f(textColor, 0, 0);
    glutText(GetSpeed().GetX() + GetPosition().GetX(), GetSpeed().GetY() + GetPosition().GetY(), "SPEED: " + GetSpeed().ToString());

	// Acceleration
    glBegin(GL_LINES);
    glColor3f(1, 1, 0);
    glVertex3f(GetPosition().GetX(), GetPosition().GetY(), 0);
    glVertex3f(GetAcceleration().GetX() + GetPosition().GetX(), GetAcceleration().GetY() + GetPosition().GetY(), 0);
    glEnd();

    glBegin(GL_POINTS);
    glVertex3f(GetAcceleration().GetX() + GetPosition().GetX(), GetAcceleration().GetY() + GetPosition().GetY(), 0);
    glEnd();

    glColor3f(textColor, 0, 0);
    glutText(GetAcceleration().GetX() + GetPosition().GetX(), GetAcceleration().GetY() + GetPosition().GetY(), "ACCELERATION: " + GetAcceleration().ToString());

	// World Forces Over //
	glBegin(GL_LINES);
	glColor3f(1, 0, 1);
	glVertex3f(GetPosition().GetX(), GetPosition().GetY(), 0);
	glVertex3f(GetExternalAcceleration().GetX()+ GetPosition().GetX(), GetExternalAcceleration().GetY()+ GetPosition().GetY(), 0);
	glEnd();

	glBegin(GL_POINTS);
	glVertex3f(GetExternalAcceleration().GetX()+ GetPosition().GetX(), GetExternalAcceleration().GetY()+ GetPosition().GetY(), 0);
	glEnd();

    glColor3f(textColor, 0, 0);
    glutText(GetExternalAcceleration().GetX() + GetPosition().GetX(), GetExternalAcceleration().GetY() + GetPosition().GetY(), "WORLD: " + GetExternalAcceleration().ToString());

    // New Position RED //
    glBegin(GL_LINES);
    glColor3f(1, 0, 0);
    glVertex3f(GetPosition().GetX(), GetPosition().GetY(), 0);
    glVertex3f(GetNewPosition().GetX(), GetNewPosition().GetY(), 0);
    glEnd();

    glBegin(GL_POINTS);
    glVertex3f(GetNewPosition().GetX(), GetNewPosition().GetY(), 0);
    glEnd();

    glColor3f(textColor, 0, 0);
    glutText(GetNewPosition().GetX(), GetNewPosition().GetY(), "POSITION: " + GetNewPosition().ToString());
}
#endif
